<?php
//======================================================================================
//
// Function: Get availability from TEO
//
// Programmer: AR
// Date : 2025-05-06
//
// Copyright Reeft A/S (c) - 2025
//======================================================================================
//======================================================================================
// Set session
//======================================================================================
if(!isset($_SESSION))
{
session_start();
}
//======================================================================================
// General
//======================================================================================
include "include/apikey.php";
include "rft_apicall.php";
$returnResult = [];
$returnResult["error"] = "";
//======================================================================================
// Get input
//======================================================================================
if (isset($_SESSION["receivedToken"])) {
$receivedToken = $_SESSION["receivedToken"];
} else {
$returnResult["error"] .= "receivedToken missing";
echo json_encode($returnResult);
exit;
}
if (isset($_SESSION["ConsiderOrganizationHeader"])) {
$ConsiderOrganizationHeader = $_SESSION["ConsiderOrganizationHeader"];
} else {
$ConsiderOrganizationHeader = "";
}
if (isset($_SESSION["UseSharedDb"])) {
$UseSharedDb = $_SESSION["UseSharedDb"];
} else {
$UseSharedDb = "";
}
if (isset($_SESSION["TargetOrganization"])) {
$TargetOrganization = $_SESSION["TargetOrganization"];
} else {
$TargetOrganization = "";
}
if (isset($_REQUEST["depUuid"])) {
$depUuid = $_REQUEST["depUuid"];
} else {
$depUuid = "";
}
$headers = [
'accept: text/plain',
'ConsiderOrganizationHeader: ' . $ConsiderOrganizationHeader,
'UseSharedDb: ' . $UseSharedDb,
'TargetOrganization: ' . $TargetOrganization,
];
$url = $rftUrlOrganization . '/OrganizationAvailability/' . $depUuid . '/GetByOrganizationId';
$response = makeApiCall($url, $headers);
if (isset($response['error'])) {
$returnResult["error"] .= $response['error'];
} else if (isset($response['data']) && is_array($response['data'])) {
// Create new data node
foreach ($response['data']['availabilityItems'] as &$item) {
$tmpArr = array();
$startTime = new DateTime($item['startTime']);
// Add availability duration to calculate end time
$endTime = clone $startTime;
$endTime->modify("+ ".$item['availabilityDuration']." minutes");
$tmpArr['startTimeOnly'] = $startTime->format('H:i');
$tmpArr['endTimeOnly'] = $endTime->format('H:i');
$tmpArr["id"] = $item["availabilityItemId"];
$tmpArr["weekDay"] = $item["weekDay"];
$tmpArr["startTime"] = $item["startTime"];
$tmpArr["availabilityDuration"] = $item["availabilityDuration"];
$returnResult[] = $tmpArr;
}
}
echo json_encode($returnResult);